A legacy system is an antiquated computer system or application program that usually contains billions of lines of code that have been written in COBOL, PL/I and other old programming languages.
Transformation refers to the process by which legacy application source code is changed into modern languages eg. Converting an application from COBOL to Java on J2EE, or an application written in RPG to C# on .NET. Transformation is sometimes also called modernisation.
There are many advantages to transforming a legacy applications into independent, contemporary technology platform:                intellectual property in legacy applications is maintained;        future modifications to the application will be easier and less costly;        the application can be modernised to offer Web-enablement; and        the application can retain the original look, feel and functionality to minimise employee training.        
Transformation often utilises a workbench based approach to application modernisation, that is, transformation based on a set of disparate tools, and often involves significant manual translation of the code.
A Terekhov and C Verhoef state in their paper entitled “The Realities of Language Conversions” (St Petersburg State University) that automated language conversion appears deceptively simple, when in fact it is a very complicated problem. They conclude by stating that there is no such thing as an easy conversion and that people should limit their expectations on both the quality and the semantical equivalence of conversion projects.